<?php
/**
 * Author: 孙武 QQ:1228746736
 * Date: 2017/12/1
 * Time: 23:16
 */

namespace wechat;

use Curl\Curl;

require_once "WechatTools.class.php";
require_once "Curl.class.php";

class WechatKF
{
    private $_accessToken;

    public function __construct($appId, $appSecret)
    {

        $tool = new WechatTool($appId, $appSecret);
        $this->_accessToken = $tool->getAccessToken();
    }

    public function addKF()
    {
        /*
         * http请求方式: POST
            https://api.weixin.qq.com/customservice/kfaccount/add?access_token=ACCESS_TOKEN

            POST数据示例如下：

            {
                 "kf_account" : "test1@test",
                 "nickname" : "客服1",
                 "password" : "pswmd5",
            }

            返回说明（正确时的JSON返回结果）：

            {
                 "errcode" : 0,
                 "errmsg" : "ok",
            }
        参数	          是否必须	   说明
        access_token	是	调用接口凭证
        kf_account	是	完整客服账号，格式为：账号前缀@公众号微信号
        kf_nick	是	客服昵称
        kf_id	是	客服工号
        nickname	是	客服昵称，最长6个汉字或12个英文字符
        password	否	客服账号登录密码，格式为密码明文的32位加密MD5值。该密码仅用于在公众平台官网的多客服功能中使用，若不使用多客服功能，则不必设置密码
        media	是	该参数仅在设置客服头像时出现，是form-data中媒体文件标识，有filename、filelength、content-type等信息
         */

        $api = "https://api.weixin.qq.com/customservice/kfaccount/add?access_token=%s";
        $targetApi = sprintf($api, $this->_accessToken);
        //wxfe7927ebbe6ef42a
        $kfInfo = array(
            "kf_account" => "sunwu@wxfe7927ebbe6ef42a",
            "nickname" => "孙武",
            "password" => "sunwu",
        );
        $res = Curl::curlGetJsonDataByPost($targetApi, $kfInfo);
    }


    public function getKF()
    {
        /*
         * 获取所有客服账号

        开发者通过本接口，获取公众号中所设置的客服基本信息，包括客服工号、客服昵称、客服登录账号。

        http请求方式: GET
        https://api.weixin.qq.com/cgi-bin/customservice/getkflist?access_token=ACCESS_TOKEN

        返回说明（正确时的JSON返回结果）：

        {
         "kf_list": [
        {
            "kf_account": "test1@test",
            "kf_nick": "ntest1",
            "kf_id": "1001"
            "kf_headimgurl": " http://mmbiz.qpic.cn/mmbiz/4whpV1VZl2iccsvYbHvnphkyGtnvjfUS8Ym0GSaLic0FD3vN0V8PILcibEGb2fPfEOmw/0"
        },
        {
            "kf_account": "test2@test",
            "kf_nick": "ntest2",
            "kf_id": "1002"
            "kf_headimgurl": " http://mmbiz.qpic.cn/mmbiz/4whpV1VZl2iccsvYbHvnphkyGtnvjfUS8Ym0GSaLic0FD3vN0V8PILcibEGb2fPfEOmw /0"
        },
        {
            "kf_account": "test3@test",
            "kf_nick": "ntest3",
            "kf_id": "1003"
            "kf_headimgurl": " http://mmbiz.qpic.cn/mmbiz/4whpV1VZl2iccsvYbHvnphkyGtnvjfUS8Ym0GSaLic0FD3vN0V8PILcibEGb2fPfEOmw /0"
        }
    ]
}
         */

        $api = "https://api.weixin.qq.com/cgi-bin/customservice/getkflist?access_token=%s";
        $tarApi = sprintf($api, $this->_accessToken);
        $res = Curl::curlGetJsonDataByGet($tarApi);
        dump($res);
        exit;


    }


    public function transferToCustomer($msg)
    {
        /*
         * 消息转发到客服

如果公众号处于开发模式，普通微信用户向公众号发消息时，微信服务器会先将消息POST到开发者填写的url上，如果希望将消息转发到客服系统，则需要开发者在响应包中返回MsgType为transfer_customer_service的消息，微信服务器收到响应后会把当次发送的消息转发至客服系统。

 <xml>
     <ToUserName><![CDATA[touser]]></ToUserName>
     <FromUserName><![CDATA[fromuser]]></FromUserName>
     <CreateTime>1399197672</CreateTime>
     <MsgType><![CDATA[transfer_customer_service]]></MsgType>
 </xml>

参数说明


参数	是否必须	描述
ToUserName	是	接收方帐号（收到的OpenID）
FromUserName	是	开发者微信号
CreateTime	是	消息创建时间 （整型）
MsgType	是	transfer_customer_service
         */
        $xmlTemplate = "<xml>
         <ToUserName><![CDATA[%s]]></ToUserName>
         <FromUserName><![CDATA[%s]]></FromUserName>
         <CreateTime>%s</CreateTime>
         <MsgType><![CDATA[transfer_customer_service]]></MsgType>
         </xml>";

    }


    public function sendCustomerMsg()
    {
        /*
         * 客服接口-发消息

http请求方式: POST
https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN
各消息类型所需的JSON数据包如下：

发送文本消息

{
    "touser":"OPENID",普通用户openid
    "msgtype":"text",消息类型，文本为text，图片为image，语音为voice，视频消息为video，音乐消息为music，图文消息（点击跳转到                  外链）为news，图文消息（点击跳转到图文消息页面）为mpnews，卡券为wxcard，小程序为miniprogrampage
    "text":
    {
         "content":"Hello World"
    }
}

         */

        $api = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=%s";
        $tarApi = sprintf($api, $this->_accessToken);
        $data = array(
            "touser" => "OPENID",
            "msgtype" => "text",
            "text" => array("content" => "我是孙武的客服消息")
        );
        $res=Curl::curlPostJson($api,$data);
        dump($res);
        exit;
    }
}
